﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TImSdk
{
    /// <summary>
    /// 好友变更通知
    /// </summary>
    public class FriendChangeElem : Elem
    {
        /// <summary>
        /// 资料变更类型
        /// </summary>
        [JsonProperty("friend_change_elem_change_type")]
        public TIMFriendChangeType Friend_Change_Elem_Change_Type { get; set; }
        /// <summary>
        /// 新增的好友identifier列表，只有当 change_type 为 kTIMFriendChange_FriendAdd 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_friend_add_identifier_array")]
        public string[] Friend_Change_Elem_Friend_Add_Identifier_Array { get; set; }
        /// <summary>
        ///  删除的好友identifier列表，只有当 change_type 为 kTIMFriendChange_FriendDel 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_friend_del_identifier_array")]
        public string[] Friend_Change_Elem_Friend_Del_Identifier_Array { get; set; }
        /// <summary>
        /// 好友添加未决信息列表，只有当 change_type 为 kTIMFriendChange_PendencyAdd 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_friend_add_pendency_array")]
        public List<FriendAddPendency> Friend_Change_Elem_Friend_Add_Pendency_Array { get; set; }
        /// <summary>
        /// 好友未决信息删除列表，只有当 change_type 为 kTIMFriendChange_PendencyDel 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_pendency_del_identifier_array")]
        public string[] Friend_Change_Elem_Pendency_Del_Identifier_Array { get; set; }
        /// <summary>
        /// 未决已读上报时间戳，只有当 change_type 为 kTIMFriendChange_PendencyReadedReport 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_pendency_readed_report_timestamp")]
        public int Friend_Change_Elem_Pendency_Readed_Report_Timestamp { get; set; }
        /// <summary>
        ///  新增的黑名单identifier列表，只有当 change_type 为 kTIMFriendChange_BlackListAdd 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_blacklist_add_identifier_array")]
        public string[] Friend_Change_Elem_Blacklist_Add_Identifier_Array { get; set; }
        /// <summary>
        /// 删除的黑名单identifier列表，只有当 change_type 为 kTIMFriendChange_BlackListDel 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_blacklist_del_identifier_array")]
        public string[] Friend_Change_Elem_Blacklist_Del_Identifier_Array { get; set; }
        /// <summary>
        /// 好友资料更新列表，只有当 change_type 为 kTIMFriendChange_FriendProfileUpdate 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_friend_profile_update_item_array")]
        public List<FriendProfileUpdate> Friend_Change_Elem_Friend_Profile_Update_Item_Array { get; set; }
        /// <summary>
        ///  新增的好友分组名称列表，只有当 change_type 为 kTIMFriendChange_FriendGroupAdd 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_friend_group_add_array")]
        public string[] Friend_Change_Elem_Friend_Group_Add_Array { get; set; }
        /// <summary>
        /// 删除的好友分组名称列表，     只有当 change_type 为 kTIMFriendChange_FriendGroupDel 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_friend_group_del_array")]
        public string[] Friend_Change_Elem_Friend_Group_Del_Array { get; set; }
        /// <summary>
        /// 修改的好友分组名称列表，     只有当 change_type 为 kTIMFriendChange_FriendGroupModify 时有效
        /// </summary>
        [JsonProperty("friend_change_elem_friend_group_update_array")]
        public string[] Friend_Change_Elem_Friend_Group_Update_Array { get; set; }
    }
}
